package a.j;

import a.c.bb;
import a.c.d;
import a.c.k;
import a.c.m;
import a.c.q;
import a.c.w;
import a.c.y;
import a.f.ed;
import a.f.rc;
import a.f.t;
import a.i.db;
import a.j.a.f;
import a.j.a.j;
import a.j.a.o;

import java.lang.ref.WeakReference;
import java.util.*;

public abstract class ad
{
  private rc a = b();
  public static boolean b;
  
  public rc a()
  {
    return this.a;
  }
  
  public void a(rc paramrc)
  {
    this.a = paramrc;
  }
  
  protected rc b()
  {
    a.f.d.e locale = new a.f.d.e();
    locale.l(true);
    locale.b(5.0D);
    locale.n(true);
    locale.m(true);
    return locale;
  }
  
  public void c()
  {
    g localg = g();
    localg.z();
    try
    {
      localg.o();
      h();
      d();
    }
    finally
    {
      localg.A();
    }
    e();
  }
  
  protected void d()
  {
    rc localrc = a();
    if (localrc != null)
    {
      ec localec = new ec();
      localec.h(true);
      localec.a(g(), new a.f.ab(localrc));
    }
  }
  
  protected void e()
  {
    boolean bool2 = ld.E;
    boolean bool1 = ld.D;
    y localy = g().eb();
    do
    {
      if (!localy.e()) {
        break;
      }
      ze localze = (ze)localy.j();
      if (!bool2)
      {
        if ((localze instanceof pg)) {
          ((pg)localze).F();
        }
        localze.b();
        localy.f();
      }
    } while (!bool1);
  }
  
  public abstract g f();
  
  public abstract g g();
  
  protected abstract void h();
  
  public abstract a.c.e a(a.c.e parame);
  
  public abstract a.c.e b(a.c.e parame);
  
  public abstract d a(d paramd);
  
  public abstract d b(d paramd);
  
  private static final class m_
  {
    final g a;
    final x.a_ b;
    final g c;
    
    m_(g paramg1, x.a_ parama_, g paramg2)
    {
      this.a = paramg1;
      this.b = parama_;
      this.c = paramg2;
      cd localcd = cd.m(paramg1);
      if (!ld.E)
      {
        if (!localcd.b(paramg2)) {
          localcd.a(paramg2, null, false, false);
        }
      }
      else
      {
        localcd.a(paramg2, parama_);
        localcd.c(true);
      }
    }
    
    a.c.e a(a.c.e parame)
    {
      return cd.m(this.a).b(parame);
    }
    
    a.c.e c(a.c.e parame)
    {
      return cd.m(this.a).a(parame, this.c);
    }
    
    d a(d paramd)
    {
      return cd.m(this.a).b(paramd);
    }
    
    d c(d paramd)
    {
      return cd.m(this.a).a(paramd, this.c);
    }
    
    void a(Collection paramCollection1, Collection paramCollection2)
    {
      cd localcd = cd.m(this.a);
      x.a_ locala_ = localcd.h(this.c);
      if (!ld.E) {
        if (locala_ != this.b) {
          localcd.a(this.c, this.b);
        }
      }
      try
      {
        localcd.a(new bb(paramCollection1.iterator()).l(), new a.c.ab(paramCollection2.iterator()).l(), this.c);
      }
      finally
      {
        if (locala_ != this.b) {
          localcd.a(this.c, locala_);
        }
      }
    }
    
    void a(a.c.e parame1, a.c.e parame2)
    {
      cd localcd = cd.m(this.a);
      localcd.a(parame1, parame2);
    }
    
    void a(d paramd1, d paramd2)
    {
      cd localcd = cd.m(this.a);
      localcd.a(paramd1, paramd2);
    }
  }
  
  public static class i_
    extends ad.a_
  {
    public static final byte f = 1;
    public static final byte l = 2;
    public static final byte m = 3;
    private final g n;
    private final x.a_ o;
    private final g p;
    private final a_ q;
    private final a_ r;
    private final a_ s;
    private final a_ t;
    private final WeakHashMap v;
    private byte w;
    private boolean x;
    public static boolean y;
    
    public i_(g paramg)
    {
      this(paramg, paramg.e());
    }
    
    public i_(g paramg, x.a_ parama_)
    {
      this(paramg, parama_, (g)parama_.a());
    }
    
    public i_(g paramg1, x.a_ parama_, g paramg2)
    {
      super();
      this.n = paramg1;
      this.o = parama_;
      this.p = paramg2;
      this.q = new a_();
      this.r = new a_();
      this.s = new a_();
      this.t = new a_();
      this.v = new WeakHashMap();
      this.w = 2;
    }
    
    public byte t()
    {
      return this.w;
    }
    
    public void a(byte paramByte)
    {
      if (!ld.E) {}
      switch (paramByte)
      {
      case 1: 
      case 2: 
      case 3: 
        this.w = paramByte;
        if (!ld.D) {
          break;
        }
      default: 
        throw new IllegalArgumentException("Unsupported folder policy: " + paramByte);
      }
    }
    
    public g f()
    {
      return this.n;
    }
    
    public g g()
    {
      return this.p;
    }
    
    public a.c.e a(a.c.e parame)
    {
      a.c.e locale = (a.c.e)this.r.a(parame);
      if ((ld.E) || (locale != null)) {
        return locale;
      }
      return null;
    }
    
    public a.c.e b(a.c.e parame)
    {
      a.c.e locale = (a.c.e)this.q.a(parame);
      if ((ld.E) || (locale != null)) {
        return locale;
      }
      return null;
    }
    
    public d a(d paramd)
    {
      d locald = (d)this.t.a(paramd);
      if ((ld.E) || (locald != null)) {
        return locald;
      }
      return null;
    }
    
    public d b(d paramd)
    {
      d locald = (d)this.s.a(paramd);
      if ((ld.E) || (locald != null)) {
        return locald;
      }
      return null;
    }
    
    protected rc b()
    {
      return new t();
    }
    
    protected void d()
    {
      boolean bool = ld.E;
      rc localrc = a();
      if (!bool) {
        if ((localrc instanceof t))
        {
          g localg = g();
          Object localObject1 = t.h;
          k localk = localg.c(localObject1);
          localg.a(localObject1, db.a(this.v));
          try
          {
            new ec().a(g(), localrc);
          }
          finally
          {
            if (!bool)
            {
              localg.j(localObject1);
              if (localk == null) {}
            }
            else
            {
              localg.a(localObject1, localk);
            }
          }
        }
      }
      if (localrc != null) {
        new ec().a(g(), localrc);
      }
    }
    
    protected void h()
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      this.q.a();
      this.r.a();
      this.s.a();
      this.t.a();
      this.v.clear();
      label181:
      label695:
      label698:
      if ((bool2) || (!this.j.isEmpty()))
      {
        j localj = f().K();
        label579:
        if (localj != null)
        {
          HashSet localHashSet = new HashSet();
          ArrayList localArrayList = new ArrayList(this.j.size());
          Iterator localIterator1 = this.j.iterator();
          do
          {
            do
            {
              a.c.e locale1;
              do
              {
                do
                {
                  if (!localIterator1.hasNext()) {
                    break;
                  }
                  locale1 = (a.c.e)localIterator1.next();
                } while (!localj.l(locale1));
                if ((bool2) || (bool1)) {
                  break label181;
                }
              } while (!localHashSet.add(locale1));
              localArrayList.add(locale1);
            } while (bool2);
          } while (!bool1);
          int i = t();
          if (!bool2) {
            if (i != 3)
            {
              if (bool2) {
                break label357;
              }
              if (i != 2) {
                break label356;
              }
              if (bool2) {
                break label357;
              }
              if (localArrayList.size() != 1) {
                break label356;
              }
            }
          }
          int j = 0;
          Iterator localIterator2 = localArrayList.iterator();
          a.c.e locale2;
          bb localbb;
          Integer localInteger;
          Object localObject1;
          do
          {
            if (!localIterator2.hasNext()) {
              break;
            }
            locale2 = (a.c.e)localIterator2.next();
            localbb = new ad.15(this, this.o).a(localj.o(locale2), g());
            localInteger = new Integer(j);
            localObject1 = localbb.l();
            if (((w)localObject1).e())
            {
              this.v.put(((w)localObject1).d(), localInteger);
              ((w)localObject1).f();
            }
            for (;;)
            {
              if (!bool2) {
                if (!bool1)
                {
                  if (!bool1) {
                    break;
                  }
                  if (bool2) {
                    continue;
                  }
                  j++;
                }
              }
            }
          } while (!bool1);
          label356:
          label357:
          j = 0;
          localIterator2 = localArrayList.iterator();
          label481:
          do
          {
            if (!localIterator2.hasNext()) {
              break;
            }
            a.c.e locale3;
            Object localObject2;
            do
            {
              do
              {
                locale2 = (a.c.e)localIterator2.next();
                localbb = new ad.14(this, this.o).a(localj.o(locale2), g());
                localInteger = new Integer(j);
                localObject1 = localbb.l();
                do
                {
                  if (!((w)localObject1).e()) {
                    break label481;
                  }
                  this.v.put(((w)localObject1).d(), localInteger);
                  ((w)localObject1).f();
                  if ((!bool2) && (bool1)) {
                    break;
                  }
                } while (!bool1);
                localObject1 = g().K();
                if (bool2) {
                  break label698;
                }
              } while (bool2);
              if (localObject1 == null) {
                break label695;
              }
              locale3 = ((j)localObject1).c(g());
              localObject2 = localbb.l();
              do
              {
                if (!((w)localObject2).e()) {
                  break label579;
                }
                if (bool1) {
                  break;
                }
                if (((j)localObject1).p(((w)localObject2).d()) == null) {
                  ((j)localObject1).c(((w)localObject2).d(), locale3);
                }
                ((w)localObject2).f();
              } while (!bool1);
              localObject2 = a(locale2, locale3);
            } while (bool2);
            if (!bool2)
            {
              if (localObject2 != null)
              {
                if (bool2) {
                  break label677;
                }
                if (localObject2 != g().w(locale3)) {
                  g().a(locale3, (ld)localObject2);
                }
              }
              this.q.a(locale2, locale3);
              this.r.a(locale3, locale2);
              this.v.put(locale3, localInteger);
            }
            g().w(locale3).b(new Rectangle2D.Double(0.0D, 0.0D, -1.0D, -1.0D));
            j++;
          } while (!bool1);
        }
      }
      label677:
    }
    
    protected ld a(a.c.e parame1, a.c.e parame2)
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      ld localld1 = f().w(parame1);
      ld localld2 = g().w(parame2);
      localld2.e(localld1.H());
      if (!bool2) {
        if (localld1.x() > 0)
        {
          localld2.b(localld1.u());
          if (!bool2)
          {
            if (!(localld2 instanceof o)) {
              break label119;
            }
            ((o)localld2).h(true);
          }
        }
      }
      label119:
      while (bool2) {
        while (!bool1)
        {
          if ((!bool2) && ((!bool1) || (localld2.x() <= 0))) {
            break;
          }
          if (bool1) {
            break label126;
          }
          localld2.c(localld2.w());
        }
      }
      label126:
      return localld2;
    }
    
    public boolean u()
    {
      return this.x;
    }
    
    public void b(boolean paramBoolean)
    {
      this.x = paramBoolean;
    }
    
    private static final class a_
    {
      private final WeakHashMap a = new WeakHashMap();
      
      void a(Object paramObject1, Object paramObject2)
      {
        this.a.put(paramObject1, new WeakReference(paramObject2));
      }
      
      Object a(Object paramObject)
      {
        WeakReference localWeakReference = (WeakReference)this.a.get(paramObject);
        if (!ld.E) {
          if (localWeakReference == null) {
            return null;
          }
        }
        return localWeakReference.get();
      }
      
      void a()
      {
        this.a.clear();
      }
    }
  }
  
  public static class c_
    extends ad.b_
  {
    private boolean l = true;
    public static boolean m;
    
    public c_(g paramg)
    {
      this(paramg, paramg.e());
    }
    
    public c_(g paramg, x.a_ parama_)
    {
      this(paramg, parama_, (g)parama_.a());
    }
    
    public c_(g paramg1, x.a_ parama_, g paramg2)
    {
      super(parama_, paramg2);
    }
    
    public boolean t()
    {
      return this.l;
    }
    
    public void b(boolean paramBoolean)
    {
      this.l = paramBoolean;
    }
    
    protected void h()
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      if ((bool2) || (!this.j.isEmpty()))
      {
        j localj = f().K();
        if (localj != null)
        {
          HashSet localHashSet1 = new HashSet();
          HashSet localHashSet2 = new HashSet();
          if ((bool2) || (t())) {
            localHashSet1.addAll(this.j);
          }
          Object localObject1 = new HashSet();
          Object localObject2 = new HashSet();
          ((HashSet)localObject1).addAll(this.j);
          do
          {
            do
            {
              if (((HashSet)localObject1).isEmpty()) {
                break;
              }
              if (bool1) {
                break label219;
              }
              localObject3 = ((HashSet)localObject1).iterator();
              if (((Iterator)localObject3).hasNext()) {}
              for (;;)
              {
                if (!bool2)
                {
                  ((HashSet)localObject2).add(localj.p((a.c.e)((Iterator)localObject3).next()));
                  if (!bool1)
                  {
                    if (!bool1) {
                      break;
                    }
                    ((HashSet)localObject2).remove(null);
                    localHashSet1.addAll((Collection)localObject2);
                    if (bool2) {
                      continue;
                    }
                    ((HashSet)localObject1).clear();
                  }
                }
              }
              localObject3 = localObject1;
              localObject1 = localObject2;
              localObject2 = localObject3;
            } while (!bool1);
          } while (bool2);
          label219:
          Object localObject3 = localHashSet1.iterator();
          break label250;
          label228:
          if (((Iterator)localObject3).hasNext()) {}
          label250:
          while (bool2)
          {
            a.c.e locale = (a.c.e)((Iterator)localObject3).next();
            m localm = locale.l();
            d locald;
            do
            {
              if (!localm.e()) {
                break;
              }
              locald = localm.a();
            } while (bool2);
            if ((!bool2) && (bool1)) {
              return;
            }
            if (bool1) {
              break label228;
            }
            if (localHashSet1.contains(locald.a(locale))) {
              localHashSet2.add(locald);
            }
            localm.f();
            if (!bool1) {
              break;
            }
          }
          this.f.a(localHashSet1, localHashSet2);
        }
      }
    }
  }
  
  public static class d_
    extends ad.b_
  {
    private boolean l;
    public static boolean m;
    
    public d_(g paramg)
    {
      this(paramg, paramg.e());
    }
    
    public d_(g paramg, x.a_ parama_)
    {
      this(paramg, parama_, (g)parama_.a());
    }
    
    public d_(g paramg1, x.a_ parama_, g paramg2)
    {
      super(parama_, paramg2);
    }
    
    public boolean t()
    {
      return this.l;
    }
    
    public void b(boolean paramBoolean)
    {
      this.l = paramBoolean;
    }
    
    protected rc b()
    {
      return null;
    }
    
    protected void h()
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      if ((bool2) || (!this.j.isEmpty()))
      {
        j localj = f().K();
        if (localj != null)
        {
          HashSet localHashSet1 = new HashSet();
          HashSet localHashSet2 = new HashSet();
          Iterator localIterator;
          a.c.e locale1;
          Object localObject1;
          Object localObject2;
          if (!bool2)
          {
            label150:
            label282:
            label284:
            if (this.l)
            {
              localIterator = this.j.iterator();
              label163:
              label164:
              label225:
              do
              {
                do
                {
                  do
                  {
                    if (!localIterator.hasNext()) {
                      break;
                    }
                    locale1 = (a.c.e)localIterator.next();
                    localObject1 = localj.r(localj.p(locale1));
                  } while (!((w)localObject1).e());
                  localObject2 = new ArrayList();
                  if (bool2) {
                    break label410;
                  }
                  if ((!bool2) && (bool1)) {
                    break label410;
                  }
                } while (bool1);
                ((ArrayList)localObject2).add(((w)localObject1).d());
                break label225;
                if (!((ArrayList)localObject2).isEmpty()) {}
                while (bool2)
                {
                  a.c.e locale2 = (a.c.e)((ArrayList)localObject2).remove(((ArrayList)localObject2).size() - 1);
                  if (!localHashSet1.add(locale2)) {
                    break label164;
                  }
                  if (bool2) {
                    break label150;
                  }
                  if (bool1) {
                    break;
                  }
                  if (!localj.m(locale2)) {
                    break label164;
                  }
                  w localw = localj.r(locale2);
                  if (!localw.e()) {
                    break label164;
                  }
                  ((ArrayList)localObject2).add(localw.d());
                  localw.f();
                  if (bool2) {
                    break label284;
                  }
                  if (bool1) {
                    break label282;
                  }
                  if (!bool1) {
                    break label163;
                  }
                }
                ((w)localObject1).f();
              } while (!bool1);
            }
            if (bool2) {}
          }
          else
          {
            localIterator = this.j.iterator();
            break label337;
            label303:
            if (localIterator.hasNext()) {}
            label337:
            while (bool2)
            {
              locale1 = (a.c.e)localIterator.next();
              localObject1 = localj.r(localj.p(locale1));
              if (!((w)localObject1).e()) {
                break label303;
              }
              localObject2 = ((w)localObject1).d();
              if (bool2) {
                break label412;
              }
              localHashSet1.add(localObject2);
              ((w)localObject1).f();
              if (bool2) {
                break label410;
              }
              if ((bool1) || ((!bool2) && (bool1))) {
                break label411;
              }
              if (!bool1) {
                break;
              }
            }
            label410:
            localHashSet1.remove(null);
            label411:
            label412:
            localIterator = localHashSet1.iterator();
            break label446;
            label424:
            if (localIterator.hasNext()) {}
            label446:
            while (bool2)
            {
              locale1 = (a.c.e)localIterator.next();
              localObject1 = locale1.l();
              do
              {
                if (!((m)localObject1).e()) {
                  break;
                }
                localObject2 = ((m)localObject1).a();
              } while (bool2);
              if ((!bool2) && (bool1)) {
                return;
              }
              if (bool1) {
                break label424;
              }
              if (localHashSet1.contains(((d)localObject2).a(locale1))) {
                localHashSet2.add(localObject2);
              }
              ((m)localObject1).f();
              if (!bool1) {
                break;
              }
            }
            this.f.a(localHashSet1, localHashSet2);
          }
        }
      }
    }
  }
  
  public static class e_
    extends ad.b_
  {
    public static final byte l = 1;
    public static final byte m = 2;
    public static final byte n = 3;
    public static final byte o = 4;
    public static final byte p = 0;
    public static final byte q = 1;
    public static final byte r = 2;
    public static final int s = 0;
    public static final int t = 1;
    private int u = 1;
    private byte v = 3;
    private byte w = 2;
    private boolean x;
    private int y = 0;
    public static boolean A;
    
    public e_(g paramg)
    {
      this(paramg, paramg.e());
    }
    
    public e_(g paramg, x.a_ parama_)
    {
      this(paramg, parama_, (g)parama_.a());
    }
    
    public e_(g paramg1, x.a_ parama_, g paramg2)
    {
      super(parama_, paramg2);
    }
    
    public int t()
    {
      return this.u;
    }
    
    public void b(int paramInt)
    {
      this.u = Math.max(0, paramInt);
    }
    
    public byte u()
    {
      return this.v;
    }
    
    public void a(byte paramByte)
    {
      if (!ld.E) {}
      switch (paramByte)
      {
      case 1: 
      case 2: 
      case 3: 
      case 4: 
        this.v = paramByte;
        if (!ld.D) {
          break;
        }
      default: 
        throw new IllegalArgumentException("Unsupported neighborhood type: " + paramByte);
      }
    }
    
    public byte v()
    {
      return this.w;
    }
    
    public void b(byte paramByte)
    {
      if (!ld.E) {}
      switch (paramByte)
      {
      case 0: 
      case 1: 
      case 2: 
        this.w = paramByte;
        if (!ld.D) {
          break;
        }
      default: 
        throw new IllegalArgumentException("Unsupported edge policy: " + paramByte);
      }
    }
    
    public boolean w()
    {
      return this.x;
    }
    
    public void b(boolean paramBoolean)
    {
      this.x = paramBoolean;
    }
    
    public int x()
    {
      return this.y;
    }
    
    public void c(int paramInt)
    {
      if (!ld.E) {}
      switch (paramInt)
      {
      case 0: 
      case 1: 
        this.y = paramInt;
        if (!ld.D) {
          break;
        }
      default: 
        throw new IllegalArgumentException("Unsupported focused folder policy: " + paramInt);
      }
    }
    
    protected void h()
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      if ((bool2) || (!this.j.isEmpty()))
      {
        g localg1 = f();
        j localj = localg1.K();
        Object localObject1;
        Object localObject2;
        HashMap localHashMap2;
        label316:
        Object localObject5;
        label392:
        label428:
        Object localObject6;
        Object localObject7;
        if ((w()) && ((bool2) || (localj != null)))
        {
          localObject1 = g().K();
          if ((bool2) || (localObject1 == null)) {
            localObject1 = new j(g());
          }
          localObject2 = new HashMap();
          HashMap localHashMap1 = new HashMap();
          localHashMap2 = new HashMap();
          g localg2 = a(localj, (j)localObject1, (Map)localObject2, localHashMap1, localHashMap2);
          bb localbb = new bb();
          Object localObject3 = this.j.iterator();
          do
          {
            if (!((Iterator)localObject3).hasNext()) {
              break;
            }
            localbb.c(((Map)localObject2).get(((Iterator)localObject3).next()));
            if ((!bool2) && (bool1)) {
              return;
            }
          } while (!bool1);
          localObject3 = new HashSet();
          HashSet localHashSet = new HashSet();
          if (bool2) {
            return;
          }
          if (!bool2) {
            if ((this.v & 0x1) == 1) {
              a((byte)1, localg2, localbb, (Collection)localObject3, localHashSet);
            }
          }
          if (!bool2) {
            if ((this.v & 0x2) == 2) {
              a((byte)2, localg2, localbb, (Collection)localObject3, localHashSet);
            }
          }
          if ((bool2) || ((this.v & 0x4) == 4)) {
            a((byte)3, localg2, localbb, (Collection)localObject3, localHashSet);
          }
          Object[] arrayOfObject = ((HashSet)localObject3).toArray();
          Object localObject4 = localg2.v();
          if (((w)localObject4).e()) {}
          while (bool2)
          {
            localObject5 = ((w)localObject4).d();
            if (bool1) {
              break label428;
            }
            if (!((HashSet)localObject3).contains(localObject5))
            {
              int i = 0;
              do
              {
                if (i >= arrayOfObject.length) {
                  break label392;
                }
                if (bool1) {
                  break;
                }
                if (((j)localObject1).b((a.c.e)localObject5, (a.c.e)arrayOfObject[i])) {
                  ((HashSet)localObject3).add(localObject5);
                }
                i++;
              } while (!bool1);
            }
            ((w)localObject4).f();
            if (bool2) {
              break label316;
            }
            if (!bool1) {
              break;
            }
          }
          localObject4 = localg2.v();
          do
          {
            if (!((w)localObject4).e()) {
              break;
            }
            localObject5 = ((w)localObject4).d();
            if ((!bool2) && (bool1)) {
              return;
            }
            if (!bool2)
            {
              if (!((HashSet)localObject3).contains(localObject5)) {
                localg2.a((a.c.e)localObject5);
              }
              ((w)localObject4).f();
            }
          } while (!bool1);
          localObject4 = new LinkedHashSet();
          if (bool2) {
            return;
          }
          localObject5 = localg2.w();
          do
          {
            if (!((m)localObject5).e()) {
              break;
            }
            localObject6 = ((m)localObject5).a();
            if ((!bool2) && (bool1)) {
              return;
            }
            if (!bool2)
            {
              if (!localHashSet.contains(localObject6)) {
                ((LinkedHashSet)localObject4).add(localObject6);
              }
              ((m)localObject5).f();
            }
          } while (!bool1);
          if (bool2) {
            return;
          }
          localObject5 = ((LinkedHashSet)localObject4).iterator();
          do
          {
            if (!((Iterator)localObject5).hasNext()) {
              break;
            }
            localg2.a((d)((Iterator)localObject5).next());
            if (bool2) {
              break label790;
            }
            if (bool1) {
              break label783;
            }
          } while (!bool1);
          if (!bool2)
          {
            localObject5 = localg2.v();
            do
            {
              if (!((w)localObject5).e()) {
                break;
              }
              localObject6 = ((w)localObject5).d();
              if ((!bool2) && (bool1)) {
                return;
              }
              if (!bool2)
              {
                if (((j)localObject1).m((a.c.e)localObject6))
                {
                  if (bool2) {
                    continue;
                  }
                  if (!((j)localObject1).r((a.c.e)localObject6).e())
                  {
                    localObject7 = (a.c.e)localHashMap1.get(localObject6);
                    if (bool2) {
                      continue;
                    }
                    if (localj.l((a.c.e)localObject7))
                    {
                      ((j)localObject1).f((a.c.e)localObject6);
                      localg2.a((a.c.e)localObject6, ((g)((a.c.e)localObject7).g()).w((a.c.e)localObject7).m());
                    }
                  }
                }
                ((w)localObject5).f();
              }
            } while (!bool1);
            if (bool2) {
              return;
            }
            localObject5 = ((Map)localObject2).keySet().iterator();
            label783:
            label790:
            do
            {
              do
              {
                do
                {
                  if (!((Iterator)localObject5).hasNext()) {
                    break;
                  }
                  localObject6 = (a.c.e)((Iterator)localObject5).next();
                  localObject7 = (a.c.e)((Map)localObject2).get(localObject6);
                } while (((a.c.e)localObject7).g() == null);
                this.f.a((a.c.e)localObject6, (a.c.e)localObject7);
                if ((bool2) || (bool2)) {
                  break label884;
                }
                if (bool1) {
                  break label877;
                }
              } while (bool2);
            } while (!bool1);
            localObject5 = localHashMap2.keySet().iterator();
          }
        }
        label877:
        while (((Iterator)localObject5).hasNext())
        {
          label884:
          localObject6 = (d)((Iterator)localObject5).next();
          localObject7 = (d)localHashMap2.get(localObject6);
          if (((d)localObject7).c() != null)
          {
            this.f.a((d)localObject6, (d)localObject7);
            if (!bool2) {
              if (bool1)
              {
                localObject1 = new HashSet();
                localObject2 = new HashSet();
                if (!bool2) {
                  if ((this.v & 0x1) == 1) {
                    a((byte)1, localg1, new bb(this.j.iterator()), (Collection)localObject1, (Collection)localObject2);
                  }
                }
                if (!bool2)
                {
                  if ((this.v & 0x2) == 2) {
                    a((byte)2, localg1, new bb(this.j.iterator()), (Collection)localObject1, (Collection)localObject2);
                  }
                  if (bool2) {}
                }
                else if ((this.v & 0x4) == 4)
                {
                  a((byte)3, localg1, new bb(this.j.iterator()), (Collection)localObject1, (Collection)localObject2);
                }
                this.f.a((Collection)localObject1, (Collection)localObject2);
              }
            }
          }
        }
      }
    }
    
    private g a(j paramj1, j paramj2, Map paramMap1, Map paramMap2, Map paramMap3)
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      g localg1 = g();
      g localg2 = (g)paramj1.j();
      HashSet localHashSet = new HashSet();
      Object localObject1 = this.j.iterator();
      do
      {
        do
        {
          do
          {
            if (!((Iterator)localObject1).hasNext()) {
              break;
            }
            localObject2 = (a.c.e)((Iterator)localObject1).next();
          } while (!paramj1.l((a.c.e)localObject2));
          localHashSet.add(localObject2);
        } while (bool2);
      } while (!bool1);
      localObject1 = new ArrayList();
      ((ArrayList)localObject1).add(localg2);
      localg1.o();
      a(localg1, localg2, (List)localObject1, paramMap1, paramMap2, localHashSet);
      Object localObject2 = paramMap1.keySet().iterator();
      Object localObject3;
      Object localObject4;
      Object localObject5;
      do
      {
        do
        {
          do
          {
            do
            {
              do
              {
                if (!((Iterator)localObject2).hasNext()) {
                  break;
                }
                localObject3 = (a.c.e)((Iterator)localObject2).next();
              } while (paramj1.n((a.c.e)localObject3));
              localObject4 = (a.c.e)paramMap1.get(localObject3);
              paramj2.e((a.c.e)localObject4);
              if ((bool2) || (bool1)) {
                break label289;
              }
            } while (!paramj1.l((a.c.e)localObject3));
            localObject5 = a((a.c.e)localObject3, (a.c.e)localObject4);
          } while (((!bool2) && (localObject5 == null)) || (localObject5 == g().w((a.c.e)localObject4)));
          g().a((a.c.e)localObject4, (ld)localObject5);
        } while (bool2);
      } while (!bool1);
      localObject2 = paramMap2.keySet().iterator();
      label289:
      do
      {
        do
        {
          if (!((Iterator)localObject2).hasNext()) {
            break;
          }
          localObject3 = (a.c.e)((Iterator)localObject2).next();
          localObject4 = (a.c.e)paramMap2.get(localObject3);
          localObject5 = paramj1.p((a.c.e)localObject4);
        } while (localObject5 == null);
        paramj2.c((a.c.e)localObject3, (a.c.e)paramMap1.get(localObject5));
        if (bool2) {
          break label382;
        }
        if ((!bool2) && (bool1)) {
          break label375;
        }
      } while (!bool1);
      localObject2 = ((ArrayList)localObject1).iterator();
      break label404;
      label375:
      label382:
      if (((Iterator)localObject2).hasNext()) {}
      label404:
      label601:
      while (bool2)
      {
        localObject3 = (g)((Iterator)localObject2).next();
        localObject4 = ((g)localObject3).w();
        do
        {
          if (!((m)localObject4).e()) {
            break;
          }
          localObject5 = ((m)localObject4).a();
        } while (bool2);
        if (bool1) {
          break label382;
        }
        a.c.e locale1;
        a.c.e locale2;
        if (x() == 1)
        {
          if ((bool2) || (paramj1.e((d)localObject5)))
          {
            locale1 = localHashSet.contains(((d)localObject5).e()) ? ((d)localObject5).e() : paramj1.b((d)localObject5);
            locale2 = localHashSet.contains(((d)localObject5).f()) ? ((d)localObject5).f() : paramj1.c((d)localObject5);
            if (!bool2) {
              if (!bool1) {
                break label601;
              }
            }
          }
          else
          {
            locale1 = ((d)localObject5).e();
            locale2 = ((d)localObject5).f();
          }
          if ((!bool2) && (!bool1)) {}
        }
        else
        {
          if ((bool2) || (paramj1.e((d)localObject5)))
          {
            locale1 = paramj1.b((d)localObject5);
            locale2 = paramj1.c((d)localObject5);
            if (!bool2) {
              if (!bool1) {
                break label601;
              }
            }
          }
          else
          {
            locale1 = ((d)localObject5).e();
          }
          locale2 = ((d)localObject5).f();
        }
        d locald = a(localg1, (a.c.e)paramMap1.get(locale1), (a.c.e)paramMap1.get(locale2), (d)localObject5);
        paramMap3.put(localObject5, locald);
        ((m)localObject4).f();
        if (!bool1) {
          break;
        }
      }
      return localg1;
    }
    
    private void a(g paramg1, g paramg2, List paramList, Map paramMap1, Map paramMap2, Set paramSet)
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      j localj = paramg2.K();
      if (!bool2) {}
      int i = x() == 1 ? 1 : 0;
      w localw1 = paramg2.v();
      label283:
      label306:
      label315:
      do
      {
        if (!localw1.e()) {
          break;
        }
        a.c.e locale1 = localw1.d();
        q localq;
        do
        {
          a.c.e locale2 = a(paramg1, locale1);
          paramMap1.put(locale1, locale2);
          paramMap2.put(locale2, locale1);
          if (bool2) {
            break label315;
          }
          if (!localj.l(locale1)) {
            break label306;
          }
          localq = localj.o(locale1);
          if (!bool2) {
            if (i != 0)
            {
              if (bool2) {
                break label283;
              }
              if (paramSet.contains(locale1))
              {
                ArrayList localArrayList = new ArrayList();
                do
                {
                  localArrayList.add(localq);
                  w localw2;
                  a.c.e locale3;
                  do
                  {
                    do
                    {
                      if (localArrayList.isEmpty()) {
                        break;
                      }
                      g localg = (g)localArrayList.remove(localArrayList.size() - 1);
                      localw2 = localg.v();
                    } while (!localw2.e());
                    locale3 = localw2.d();
                    paramMap1.put(locale3, locale2);
                    if (bool2) {
                      break label315;
                    }
                    if (bool1) {
                      break;
                    }
                  } while (bool1);
                  if (localj.l(locale3)) {
                    localArrayList.add(localj.o(locale3));
                  }
                  localw2.f();
                } while (!bool1);
              }
            }
          }
          paramList.add(localq);
        } while (bool2);
        a(paramg1, (g)localq, paramList, paramMap1, paramMap2, paramSet);
        localw1.f();
      } while (!bool1);
    }
    
    private a.c.e a(g paramg, a.c.e parame)
    {
      this.f.b.a(parame.g(), paramg);
      a.c.e locale = this.f.b.a(paramg, parame);
      HashMap localHashMap = new HashMap();
      localHashMap.put(parame, locale);
      this.f.b.a(parame.g(), paramg, localHashMap, new HashMap());
      return locale;
    }
    
    private d a(g paramg, a.c.e parame1, a.c.e parame2, d paramd)
    {
      this.f.b.a(paramd.c(), paramg);
      d locald = this.f.b.a(paramg, parame1, parame2, paramd);
      HashMap localHashMap1 = new HashMap();
      localHashMap1.put(paramd, locald);
      HashMap localHashMap2 = new HashMap();
      localHashMap2.put(paramd.e(), parame1);
      localHashMap2.put(paramd.f(), parame2);
      this.f.b.a(paramd.c(), paramg, new HashMap(), localHashMap1);
      return locald;
    }
    
    protected ld a(a.c.e parame1, a.c.e parame2)
    {
      boolean bool = ld.E;
      ld localld1 = ((g)parame2.g()).w(parame2);
      if (!bool)
      {
        if ((localld1 instanceof qd))
        {
          qd localqd = (qd)localld1;
          ld localld2 = localqd.f(0);
          localqd.d(localld2);
          if (bool) {
            break label108;
          }
          if ((localld2 instanceof f))
          {
            if (bool) {
              break label108;
            }
            ((f)localld2).b(false);
            if (!ld.D) {}
          }
        }
        else
        {
          if (bool) {
            break label108;
          }
        }
      }
      else if ((localld1 instanceof f)) {
        ((f)localld1).b(false);
      }
      label108:
      return localld1;
    }
    
    private void a(byte paramByte, g paramg, bb parambb, Collection paramCollection1, Collection paramCollection2)
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      bb[] arrayOfbb = a(paramByte, paramg, parambb);
      int i = 0;
      do
      {
        do
        {
          if (i >= arrayOfbb.length) {
            break;
          }
          paramCollection1.addAll(arrayOfbb[i]);
          i++;
          if (bool2) {
            break label106;
          }
          if (bool1) {
            break label104;
          }
        } while (!bool1);
      } while (bool2);
      switch (v())
      {
      case 1: 
        a(paramg, paramCollection1, paramCollection2);
        if (!bool1) {
          break;
        }
      case 2: 
        label104:
        label106:
        a(arrayOfbb, paramByte, paramCollection2);
      }
    }
    
    private bb[] a(byte paramByte, g paramg, bb parambb)
    {
      switch (paramByte)
      {
      case 1: 
        return b.a(paramg, parambb, (byte)1, db.a(), t() + 1);
      case 2: 
        return b.a(paramg, parambb, true, db.a(), t() + 1);
      }
      return b.a(paramg, parambb, false, db.a(), t() + 1);
    }
    
    private static void a(g paramg, Collection paramCollection1, Collection paramCollection2)
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      m localm = paramg.w();
      do
      {
        if (!localm.e()) {
          break;
        }
        d locald = localm.a();
        if (!bool2)
        {
          if (paramCollection1.contains(locald.e()))
          {
            if (bool2) {
              continue;
            }
            if (paramCollection1.contains(locald.f())) {
              paramCollection2.add(locald);
            }
          }
          localm.f();
        }
      } while (!bool1);
    }
    
    private static void a(bb[] paramArrayOfbb, byte paramByte, Collection paramCollection)
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      HashSet localHashSet = new HashSet();
      int i = 0;
      label133:
      label171:
      label173:
      do
      {
        if (i >= paramArrayOfbb.length) {
          break;
        }
        w localw = paramArrayOfbb[i].l();
        do
        {
          if (!localw.e()) {
            break;
          }
          a.c.e locale = localw.d();
          if (bool2) {
            break label173;
          }
          if (bool1) {
            break label171;
          }
          m localm = a(locale, paramByte);
          do
          {
            do
            {
              if (!localm.e()) {
                break label133;
              }
              d locald = localm.a();
              if (bool1) {
                break;
              }
              if (localHashSet.contains(locald.a(locale))) {
                paramCollection.add(locald);
              }
              localm.f();
            } while (!bool1);
            localw.f();
          } while (bool2);
        } while (!bool1);
        localHashSet.clear();
        localHashSet.addAll(paramArrayOfbb[i]);
        if (!bool2) {
          i++;
        }
      } while (!bool1);
    }
    
    private static m a(a.c.e parame, byte paramByte)
    {
      switch (paramByte)
      {
      case 1: 
        return parame.n();
      case 2: 
        return parame.m();
      }
      return parame.l();
    }
  }
  
  static abstract class b_
    extends ad.a_
  {
    final ad.m_ f;
    
    b_(g paramg1, x.a_ parama_, g paramg2)
    {
      super();
      this.f = new ad.m_(paramg1, parama_, paramg2);
    }
    
    public g f()
    {
      return this.f.a;
    }
    
    public g g()
    {
      return this.f.c;
    }
    
    public a.c.e a(a.c.e parame)
    {
      return this.f.a(parame);
    }
    
    public a.c.e b(a.c.e parame)
    {
      return this.f.c(parame);
    }
    
    public d a(d paramd)
    {
      return this.f.a(paramd);
    }
    
    public d b(d paramd)
    {
      return this.f.c(paramd);
    }
  }
  
  public static class g_
    extends ad.f_
  {
    public static final byte l = 1;
    public static final byte m = 2;
    public static final byte n = 3;
    public static final byte o = 4;
    private byte p = 3;
    private boolean q;
    private Object r = ed.c;
    private Object s = ed.d;
    public static int t;
    
    public g_(g paramg)
    {
      this(paramg, paramg.e());
    }
    
    public g_(g paramg, x.a_ parama_)
    {
      this(paramg, parama_, (g)parama_.a());
    }
    
    public g_(g paramg1, x.a_ parama_, g paramg2)
    {
      super(parama_, paramg2);
    }
    
    public boolean t()
    {
      return this.q;
    }
    
    public void b(boolean paramBoolean)
    {
      this.q = paramBoolean;
    }
    
    public byte u()
    {
      return this.p;
    }
    
    public void a(byte paramByte)
    {
      if (!ld.E) {}
      switch (paramByte)
      {
      case 1: 
      case 2: 
      case 3: 
      case 4: 
        this.p = paramByte;
        if (!ld.D) {
          break;
        }
      default: 
        throw new IllegalArgumentException("Unsupported policy: " + paramByte);
      }
    }
    
    public Object v()
    {
      return this.r;
    }
    
    public void a(Object paramObject)
    {
      this.r = paramObject;
    }
    
    public Object w()
    {
      return this.s;
    }
    
    public void b(Object paramObject)
    {
      this.s = paramObject;
    }
    
    protected void h()
    {
      boolean bool = ld.E;
      if (!bool) {
        if (t())
        {
          if (bool) {
            break label30;
          }
          x();
          if (!ld.D) {
            return;
          }
        }
      }
      label30:
      y();
    }
    
    void x()
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      if (!this.j.isEmpty())
      {
        HashSet localHashSet1 = new HashSet();
        HashSet localHashSet2 = new HashSet();
        Object localObject1 = this.j.iterator();
        Object localObject2;
        do
        {
          if (!((Iterator)localObject1).hasNext()) {
            break;
          }
          localObject2 = (d)((Iterator)localObject1).next();
          localHashSet2.add(localObject2);
          localHashSet1.add(((d)localObject2).e());
          localHashSet1.add(((d)localObject2).f());
          if ((!bool2) && (bool1)) {
            return;
          }
        } while (!bool1);
        localObject1 = f();
        if (!bool2)
        {
          Object localObject3;
          if (!bool2)
          {
            if (this.p == 4)
            {
              localObject2 = ((g)localObject1).c(v());
              localObject3 = ((g)localObject1).c(w());
              if ((bool2) || ((localObject2 != null) && (localObject3 != null)))
              {
                HashMap localHashMap1 = new HashMap();
                a((k)localObject2, localHashMap1);
                HashMap localHashMap2 = new HashMap();
                if (bool2) {
                  break label555;
                }
                a((k)localObject3, localHashMap2);
                if ((!localHashMap1.isEmpty()) && (!localHashMap2.isEmpty()))
                {
                  Iterator localIterator1 = m();
                  label349:
                  label351:
                  do
                  {
                    Iterator localIterator2;
                    while (!localIterator2.hasNext())
                    {
                      if (!localIterator1.hasNext()) {
                        break;
                      }
                      d locald1 = (d)localIterator1.next();
                      HashSet localHashSet3 = new HashSet();
                      Object localObject4 = ((k)localObject2).get(locald1);
                      if (!bool2) {
                        if (localObject4 != null) {
                          localHashSet3.addAll((Collection)localHashMap1.get(localObject4));
                        }
                      }
                      Object localObject5 = ((k)localObject3).get(locald1);
                      if (!bool2)
                      {
                        if (localObject5 != null)
                        {
                          if (bool2) {
                            break label351;
                          }
                          localHashSet3.retainAll((Collection)localHashMap2.get(localObject5));
                        }
                      }
                      else {
                        if (!bool1) {
                          break label349;
                        }
                      }
                      localHashSet3.clear();
                      localIterator2 = localHashSet3.iterator();
                    }
                    d locald2 = (d)localIterator2.next();
                    localHashSet2.add(locald2);
                    localHashSet1.add(locald2.e());
                    localHashSet1.add(locald2.f());
                    if (bool2) {
                      return;
                    }
                    if ((!bool2) && (bool1)) {
                      break;
                    }
                    if ((!bool2) && (bool1)) {
                      return;
                    }
                  } while (!bool1);
                }
              }
            }
            else
            {
              if (bool2) {
                break label555;
              }
            }
          }
          else
          {
            if (!bool2)
            {
              if ((this.p & 0x1) == 1)
              {
                localObject2 = ((g)localObject1).c(v());
                if (localObject2 != null)
                {
                  localObject3 = new HashMap();
                  a((k)localObject2, (Map)localObject3);
                  a((k)localObject2, (Map)localObject3, localHashSet2, localHashSet1);
                }
              }
              if (bool2) {
                break label555;
              }
            }
            if ((this.p & 0x2) == 2)
            {
              localObject2 = ((g)localObject1).c(w());
              if (localObject2 != null)
              {
                localObject3 = new HashMap();
                a((k)localObject2, (Map)localObject3);
                a((k)localObject2, (Map)localObject3, localHashSet2, localHashSet1);
              }
            }
          }
          label555:
          this.f.a(localHashSet1, localHashSet2);
        }
      }
    }
    
    void a(k paramk, Map paramMap)
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      g localg = f();
      m localm = localg.w();
      do
      {
        if (!localm.e()) {
          break;
        }
        d locald = localm.a();
        Object localObject1 = paramk.get(locald);
        if (!bool2)
        {
          if (localObject1 != null)
          {
            Object localObject2 = (Collection)paramMap.get(localObject1);
            if (!bool2) {
              if (localObject2 == null)
              {
                localObject2 = new ArrayList();
                paramMap.put(localObject1, localObject2);
              }
            }
            ((Collection)localObject2).add(locald);
          }
          localm.f();
        }
      } while (!bool1);
    }
    
    void a(k paramk, Map paramMap, Collection paramCollection1, Collection paramCollection2)
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      if (!paramMap.isEmpty())
      {
        Iterator localIterator1 = m();
        do
        {
          Iterator localIterator2;
          while (!localIterator2.hasNext())
          {
            Object localObject;
            do
            {
              if (!localIterator1.hasNext()) {
                break;
              }
              d locald1 = (d)localIterator1.next();
              localObject = paramk.get(locald1);
            } while (localObject == null);
            Collection localCollection = (Collection)paramMap.get(localObject);
            localIterator2 = localCollection.iterator();
          }
          d locald2 = (d)localIterator2.next();
          paramCollection1.add(locald2);
          paramCollection2.add(locald2.e());
          paramCollection2.add(locald2.f());
        } while ((!bool2) && ((!bool1) && (!bool1)));
      }
    }
    
    void y()
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      if (!this.j.isEmpty())
      {
        HashSet localHashSet1 = new HashSet();
        HashSet localHashSet2 = new HashSet();
        Iterator localIterator;
        label61:
        d locald1;
        Object localObject1;
        Object localObject2;
        if (!bool2)
        {
          if (this.p == 4) {
            label194:
            label199:
            label245:
            do
            {
              localIterator = this.j.iterator();
              break label199;
              m localm;
              while ((!bool2) && (!localm.e()))
              {
                if (!localIterator.hasNext()) {
                  break label495;
                }
                locald1 = (d)localIterator.next();
                localObject1 = locald1.e();
                localObject2 = locald1.f();
                localHashSet1.add(localObject1);
                localHashSet1.add(localObject2);
                if (bool2) {
                  break label194;
                }
                if (((a.c.e)localObject1).e() >= ((a.c.e)localObject2).d()) {
                  break;
                }
                localm = ((a.c.e)localObject1).n();
              }
              d locald2 = localm.a();
              do
              {
                do
                {
                  if (bool1) {
                    break label245;
                  }
                  if (locald2.f() == localObject2) {
                    localHashSet2.add(locald2);
                  }
                  localm.f();
                  if (!bool1) {
                    break;
                  }
                  localm = ((a.c.e)localObject2).m();
                  if (!localm.e()) {
                    break label61;
                  }
                  locald2 = localm.a();
                  if ((bool2) || (bool1)) {
                    return;
                  }
                } while (bool2);
              } while (bool1);
              if (locald2.e() == localObject1) {
                localHashSet2.add(locald2);
              }
              localm.f();
            } while (!bool1);
          }
          if (bool2) {}
        }
        else
        {
          localIterator = this.j.iterator();
          break label437;
          label282:
          if (localIterator.hasNext()) {}
          label412:
          label424:
          label437:
          label495:
          while (bool2)
          {
            locald1 = (d)localIterator.next();
            localHashSet2.add(locald1);
            localHashSet1.add(locald1.e());
            localHashSet1.add(locald1.f());
            do
            {
              if (bool2) {
                break label424;
              }
              if ((this.p & 0x1) == 1)
              {
                localObject1 = locald1.e().n();
                do
                {
                  if (!((m)localObject1).e()) {
                    break label412;
                  }
                  localObject2 = ((m)localObject1).a();
                  localHashSet2.add(localObject2);
                  localHashSet1.add(((d)localObject2).f());
                  ((m)localObject1).f();
                  if ((!bool2) && (bool1)) {
                    break;
                  }
                } while (!bool1);
              }
            } while (bool2);
            if ((this.p & 0x2) != 2) {
              break label282;
            }
            localObject1 = locald1.f().m();
            if (!((m)localObject1).e()) {
              break label282;
            }
            localObject2 = ((m)localObject1).a();
            localHashSet2.add(localObject2);
            localHashSet1.add(((d)localObject2).e());
            ((m)localObject1).f();
            if ((!bool2) && ((!bool1) && (!bool1))) {
              break;
            }
          }
          this.f.a(localHashSet1, localHashSet2);
        }
      }
    }
  }
  
  public static class h_
    extends ad.f_
  {
    private boolean l;
    public static int m;
    
    public h_(g paramg)
    {
      this(paramg, paramg.e());
    }
    
    public h_(g paramg, x.a_ parama_)
    {
      this(paramg, parama_, (g)parama_.a());
    }
    
    public h_(g paramg1, x.a_ parama_, g paramg2)
    {
      super(parama_, paramg2);
    }
    
    public boolean t()
    {
      return this.l;
    }
    
    public void b(boolean paramBoolean)
    {
      this.l = paramBoolean;
    }
    
    protected void h()
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      if ((bool2) || (!this.j.isEmpty()))
      {
        j localj = f().K();
        Object localObject1;
        Object localObject2;
        Object localObject3;
        if ((t()) && (localj != null))
        {
          localObject1 = g();
          localObject2 = f();
          localObject3 = new j((q)localObject1);
          HashMap localHashMap = new HashMap();
          Object localObject4 = this.j.iterator();
          a.c.e locale1;
          a.c.e locale2;
          do
          {
            if (!((Iterator)localObject4).hasNext()) {
              break;
            }
            d locald = (d)((Iterator)localObject4).next();
            locale1 = a(localHashMap, locald, true);
            locale2 = a(localHashMap, locald, false);
            this.f.a(locald, a((g)localObject1, locale1, locale2, locald));
            if ((!bool2) && (bool1)) {
              return;
            }
          } while (!bool1);
          localObject4 = localHashMap.keySet().toArray();
          label343:
          label483:
          if (!bool2)
          {
            int i = 0;
            label245:
            do
            {
              do
              {
                break label245;
                if (i >= localObject4.length) {
                  break;
                }
                locale1 = (a.c.e)localObject4[i];
                locale2 = (a.c.e)localHashMap.get(locale1);
                a.c.e locale3 = localj.p(locale1);
                Object localObject5 = locale2;
                do
                {
                  if (locale3 == null) {
                    break label483;
                  }
                  if (bool1) {
                    break;
                  }
                  a.c.e locale4;
                  ld localld;
                  if (localHashMap.containsKey(locale3))
                  {
                    locale4 = (a.c.e)localHashMap.get(locale3);
                    if (!bool2)
                    {
                      if (!((j)localObject3).m(locale4))
                      {
                        ((j)localObject3).e(locale4);
                        localld = a(locale3, locale4);
                        if (bool2) {
                          break label343;
                        }
                        if ((localld != null) && (localld != g().w(locale4))) {
                          g().a(locale4, localld);
                        }
                      }
                      ((j)localObject3).c((a.c.e)localObject5, locale4);
                    }
                    if (bool2) {
                      continue;
                    }
                    if (!bool1) {}
                  }
                  else
                  {
                    locale4 = a((g)localObject1, locale3);
                    if (!bool2) {
                      if (((j)localObject3).n(locale4))
                      {
                        ((j)localObject3).e(locale4);
                        localld = a(locale3, locale4);
                        if (bool2) {
                          break label454;
                        }
                        if (localld != null)
                        {
                          if (bool2) {
                            break label454;
                          }
                          if (localld != g().w(locale4)) {
                            g().a(locale4, localld);
                          }
                        }
                      }
                    }
                    ((j)localObject3).c((a.c.e)localObject5, locale4);
                    localHashMap.put(locale3, locale4);
                  }
                  this.f.a(locale3, locale4);
                  localObject5 = locale4;
                  locale3 = localj.p(locale3);
                } while (!bool1);
                this.f.a(locale1, locale2);
                i++;
              } while (bool2);
            } while (!bool1);
          }
        }
        else
        {
          label454:
          localObject1 = new HashSet();
          if (!bool2)
          {
            localObject2 = this.j.iterator();
            if (((Iterator)localObject2).hasNext()) {}
            while (bool2)
            {
              localObject3 = (d)((Iterator)localObject2).next();
              ((HashSet)localObject1).add(((d)localObject3).e());
              ((HashSet)localObject1).add(((d)localObject3).f());
              if ((!bool2) && (bool1)) {
                return;
              }
              if (!bool1) {
                break;
              }
            }
            this.f.a((Collection)localObject1, this.j);
          }
        }
      }
    }
    
    private a.c.e a(Map paramMap, d paramd, boolean paramBoolean)
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      j localj1 = f().K();
      g localg1 = g();
      g localg2 = f();
      j localj2 = g().K();
      a.c.e locale1 = paramBoolean ? paramd.e() : paramd.f();
      if (!bool2) {
        if (localj1.e(paramd))
        {
          a.c.e locale3 = paramBoolean ? localj1.b(paramd) : localj1.c(paramd);
          if (!bool2) {
            label320:
            if (!paramMap.containsKey(locale3))
            {
              locale2 = a(localg1, locale3);
              paramMap.put(locale3, locale2);
              a.c.e locale4 = locale3;
              label198:
              label203:
              label344:
              do
              {
                if (locale4.g() == localg2) {
                  break;
                }
                if (!bool2) {
                  if (!paramMap.containsKey(locale4))
                  {
                    locale5 = a(localg1, locale4);
                    if (bool2) {
                      break label198;
                    }
                    paramMap.put(locale4, locale5);
                    if (!bool1) {
                      break label203;
                    }
                  }
                }
                a.c.e locale5 = (a.c.e)paramMap.get(locale4);
                a.c.e locale7 = localj1.p(locale4);
                if (!bool2) {
                  if (!paramMap.containsKey(locale7))
                  {
                    locale6 = a(localg1, locale7);
                    if (!bool2)
                    {
                      if (localj2.n(locale6))
                      {
                        localj2.e(locale6);
                        ld localld = a(locale7, locale6);
                        if (bool2) {
                          break label320;
                        }
                        if (localld != null)
                        {
                          if (bool2) {
                            break label320;
                          }
                          if (localld != g().w(locale6)) {
                            g().a(locale6, localld);
                          }
                        }
                      }
                      paramMap.put(locale7, locale6);
                    }
                    if (bool2) {
                      continue;
                    }
                    if (!bool1) {
                      break label344;
                    }
                  }
                }
                a.c.e locale6 = (a.c.e)paramMap.get(locale7);
                localj2.c(locale5, locale6);
                locale4 = localj1.p(locale4);
              } while (!bool1);
            }
          }
          locale2 = (a.c.e)paramMap.get(locale3);
          if (!bool2) {
            if (!bool1) {
              break label450;
            }
          }
        }
        else
        {
          if (bool2) {
            break label440;
          }
        }
      }
      if (!paramMap.containsKey(locale1))
      {
        locale2 = a(localg1, locale1);
        if (bool2) {
          break label445;
        }
        paramMap.put(locale1, locale2);
        if (!bool1) {
          break label450;
        }
      }
      label440:
      label445:
      a.c.e locale2 = (a.c.e)paramMap.get(locale1);
      label450:
      return locale2;
    }
    
    private a.c.e a(g paramg, a.c.e parame)
    {
      this.f.b.a(parame.g(), paramg);
      a.c.e locale = this.f.b.a(paramg, parame);
      HashMap localHashMap = new HashMap();
      localHashMap.put(parame, locale);
      this.f.b.a(parame.g(), paramg, localHashMap, new HashMap());
      return locale;
    }
    
    private d a(g paramg, a.c.e parame1, a.c.e parame2, d paramd)
    {
      this.f.b.a(paramd.c(), paramg);
      d locald = this.f.b.a(paramg, parame1, parame2, paramd);
      HashMap localHashMap = new HashMap();
      localHashMap.put(paramd, locald);
      this.f.b.a(paramd.c(), paramg, new HashMap(), localHashMap);
      return locald;
    }
    
    protected ld a(a.c.e parame1, a.c.e parame2)
    {
      boolean bool = ld.E;
      ld localld1 = ((g)parame2.g()).w(parame2);
      if (!bool)
      {
        if ((localld1 instanceof qd))
        {
          qd localqd = (qd)localld1;
          ld localld2 = localqd.f(0);
          localqd.d(localld2);
          if (bool) {
            break label108;
          }
          if ((localld2 instanceof f))
          {
            if (bool) {
              break label108;
            }
            ((f)localld2).b(false);
            if (!ld.D) {}
          }
        }
        else
        {
          if (bool) {
            break label108;
          }
        }
      }
      else if ((localld1 instanceof f)) {
        ((f)localld1).b(false);
      }
      label108:
      return localld1;
    }
  }
  
  static abstract class f_
    extends ad.a_
  {
    final ad.m_ f;
    
    f_(g paramg1, x.a_ parama_, g paramg2)
    {
      super();
      this.f = new ad.m_(paramg1, parama_, paramg2);
    }
    
    public g f()
    {
      return this.f.a;
    }
    
    public g g()
    {
      return this.f.c;
    }
    
    public a.c.e a(a.c.e parame)
    {
      return this.f.a(parame);
    }
    
    public a.c.e b(a.c.e parame)
    {
      return this.f.c(parame);
    }
    
    public d a(d paramd)
    {
      return this.f.a(paramd);
    }
    
    public d b(d paramd)
    {
      return this.f.c(paramd);
    }
  }
  
  public static abstract class a_
    extends ad
  {
    public static final byte c = 1;
    public static final byte d = 2;
    final byte e;
    ic g;
    boolean h;
    int i;
    final Set j;
    public static int k;
    
    protected a_(byte paramByte)
    {
      if (!bool) {}
      switch (paramByte)
      {
      case 1: 
      case 2: 
        this.e = paramByte;
        if (bool) {
          return;
        }
        if (!ld.D) {
          break;
        }
      default: 
        throw new IllegalArgumentException("Unsupported type: " + paramByte);
      }
      this.i = 100;
      this.j = new HashSet();
    }
    
    public byte i()
    {
      return this.e;
    }
    
    public boolean j()
    {
      return this.h;
    }
    
    public void a(boolean paramBoolean)
    {
      this.h = paramBoolean;
    }
    
    public int k()
    {
      return this.i;
    }
    
    public void a(int paramInt)
    {
      this.i = paramInt;
    }
    
    public void c(d paramd)
    {
      boolean bool = ld.E;
      if (2 == this.e)
      {
        if ((bool) || ((paramd == null) || ((bool) || (paramd.c() != f()))))
        {
          if (paramd == null) {
            throw new IllegalArgumentException("null");
          }
          throw new IllegalArgumentException("edge not in model graph");
        }
        if (!bool) {
          if (this.h) {
            this.j.clear();
          }
        }
        this.j.add(paramd);
      }
    }
    
    public void d(d paramd)
    {
      if ((ld.E) || (2 == this.e)) {
        this.j.remove(paramd);
      }
    }
    
    public boolean e(d paramd)
    {
      boolean bool = ld.E;
      if ((bool) || (2 == this.e)) {
        if (bool) {}
      }
      return this.j.contains(paramd);
    }
    
    public void l()
    {
      if (2 == this.e) {
        this.j.clear();
      }
    }
    
    public Iterator m()
    {
      if (2 == this.e) {
        return Collections.unmodifiableCollection(this.j).iterator();
      }
      return Collections.EMPTY_LIST.iterator();
    }
    
    public void c(a.c.e parame)
    {
      boolean bool = ld.E;
      if (1 == this.e)
      {
        if ((bool) || ((parame == null) || ((bool) || (parame.g() != f()))))
        {
          if (parame == null) {
            throw new IllegalArgumentException("null");
          }
          throw new IllegalArgumentException("node not in model graph");
        }
        if (!bool) {
          if (this.h) {
            this.j.clear();
          }
        }
        this.j.add(parame);
      }
    }
    
    public void d(a.c.e parame)
    {
      if ((ld.E) || (1 == this.e)) {
        this.j.remove(parame);
      }
    }
    
    public boolean e(a.c.e parame)
    {
      boolean bool = ld.E;
      if ((bool) || (1 == this.e)) {
        if (bool) {}
      }
      return this.j.contains(parame);
    }
    
    public void n()
    {
      if (1 == this.e) {
        this.j.clear();
      }
    }
    
    public Iterator o()
    {
      if (1 == this.e) {
        return Collections.unmodifiableCollection(this.j).iterator();
      }
      return Collections.EMPTY_LIST.iterator();
    }
    
    public void p()
    {
      if (!ld.E) {
        if (this.g == null) {
          this.g = r();
        }
      }
      f().a(this.g);
    }
    
    public void q()
    {
      if ((ld.E) || (this.g != null)) {
        f().b(this.g);
      }
    }
    
    protected ic r()
    {
      return new ad.9(this);
    }
    
    public gf s()
    {
      return new ad.13(this);
    }
  }
}



/* Location:           E:\idea\

 * Qualified Name:     a.j.ad

 * JD-Core Version:    0.7.0.1

 */